---
title: iPolicyPeriodBase
summary: API reference for iPolicyPeriodBase.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-21
library: SAIF.Business.Policy
reference_type: package
---

# iPolicyPeriodBase

`iPolicyPeriodBase` extends `iPeriodRatingInfo` and `IDateRange` into the full contract a policy-period implementation must satisfy — covering claims-reimbursement eligibility, financial system, coverage ranges, sales plan, and issuance/renewal metadata. Implementations live outside this library, making it a core part of the library's contract layer and integration boundary with consumers such as `SAIF.Business.View.Policy`.*

## Purpose
- Declare the full set of read-only attributes a policy period must expose — dates, financial/coverage flags, sales and renewal metadata — so multiple implementers can be treated uniformly by rating and reporting code.
- Extend `iPeriodRatingInfo` so every policy period is automatically comparable via `BaseEquals`/`BaseGetHashCode` and classifiable via `IsVoluntary`/`IsAssignedRisk` ([BR-POL-015](../../business-rules.md#br-pol-015-rating-period-market-type-classification), [BR-POL-018](../../business-rules.md#br-pol-018-rating-period-equality)).
- Extend `IDateRange` so a policy period can be treated as a date range by generic range-aware logic.

## Context
- Namespace: `SAIF.Business.Policy`
- Assembly/package: `SAIF.Business.Policy` (`PolicyCommon`)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `CancelDate` | `ReadOnly Property CancelDate As Date` | Date the policy period was cancelled. |
| `ClaimsReimbursementEffectiveDate` | `ReadOnly Property ClaimsReimbursementEffectiveDate As Date` | Start of the claims-reimbursement eligibility window. |
| `ClaimsReimbursementExpirationDate` | `ReadOnly Property ClaimsReimbursementExpirationDate As Date` | End of the claims-reimbursement eligibility window. |
| `CreateDate` | `ReadOnly Property CreateDate As Date` | Date the policy period record was created. |
| `CreateUser` | `ReadOnly Property CreateUser As String` | User who created the policy period record. |
| `PeriodRange` | `ReadOnly Property PeriodRange As <range type>` | The policy period's own date range (effective to expiration). |
| `CoverageRange` | `ReadOnly Property CoverageRange As <range type>` | The date range during which coverage is actually in force. |
| `EndOfCoverageDate` | `ReadOnly Property EndOfCoverageDate As Date` | Last date coverage applies for the period. |
| `FinancialSystem` | `ReadOnly Property FinancialSystem As Enums.FinancialSystems` | Financial system that owns the period's financial data. |
| `GoverningClassCode` | `ReadOnly Property GoverningClassCode As String` | Governing class code for the policy period. |
| `IsClaimsReimbursementEligible` | `ReadOnly Property IsClaimsReimbursementEligible As Boolean` | Whether the period is eligible for claims reimbursement. |
| `IsFinancePremium` | `ReadOnly Property IsFinancePremium As Boolean` | Whether the period's premium is financed. |
| `IsPerpetualMidPolicyARD` | `ReadOnly Property IsPerpetualMidPolicyARD As Boolean` | Whether the anniversary rating date perpetually falls mid-policy. |
| `IsPerpetualMidPolicyRED` | `ReadOnly Property IsPerpetualMidPolicyRED As Boolean` | Whether the rating effective date perpetually falls mid-policy. |
| `LastDateOfCoverage` | `ReadOnly Property LastDateOfCoverage As Date` | Last calendar date coverage is in force. |
| `OriginalExpirationDate` | `ReadOnly Property OriginalExpirationDate As Date` | Original (pre-amendment) expiration date of the period. |
| `PayrollReportFrequency` | `ReadOnly Property PayrollReportFrequency As Enums.PayrollReportFrequencies` | How often payroll is reported for the period. |
| `SalesPlan` | `ReadOnly Property SalesPlan As Enums.SalesPlans` | The period's sales plan. |
| `SalesPlanCode` | `ReadOnly Property SalesPlanCode As String` | Raw sales plan code backing `SalesPlan`. |
| `PolicyIssuanceSystem` | `ReadOnly Property PolicyIssuanceSystem As Enums.PolicyIssuanceSystems` | System that issued the policy. |
| `PolicyNumber` | `ReadOnly Property PolicyNumber As Decimal` | Policy number the period belongs to. |
| `PolicyRenewalTrack` | `ReadOnly Property PolicyRenewalTrack As Enums.RenewalTracks` | Whether the policy renews manually or automatically. |
| `PolicySuffix` | `ReadOnly Property PolicySuffix As <type>` | Suffix distinguishing periods within the same policy number. |
| `StandardPremiumAmount` | `ReadOnly Property StandardPremiumAmount As Decimal` | Standard (unprorated) premium amount for the period. |
| `ProratedStandardPremiumAmount(inAsOfDate)` | `Function ProratedStandardPremiumAmount(inAsOfDate As Date) As Decimal` | Computes the standard premium prorated as of a given date. |
| `UpdateDate` | `ReadOnly Property UpdateDate As Date` | Date the policy period record was last updated. |
| `UpdateUser` | `ReadOnly Property UpdateUser As String` | User who last updated the policy period record. |
| `IsFlatCancelled` | `ReadOnly Property IsFlatCancelled As Boolean` | Whether the period was flat-cancelled. |
| `IsRenewalPeriod` | `ReadOnly Property IsRenewalPeriod As Boolean` | Whether the period is a renewal of a prior period. |
| `IsCurrent` | `ReadOnly Property IsCurrent As Boolean` | Whether the period is the current active period. |
| `HasCoverage` | `ReadOnly Property HasCoverage As Boolean` | Whether the period currently provides coverage. |
| `IsArrearsBillingPlan` | `ReadOnly Property IsArrearsBillingPlan As Boolean` | Whether the period bills in arrears. |
| `IsIssued` | `ReadOnly Property IsIssued As Boolean` | Whether the period has been issued. |
| `Equals` (2 overloads) | `Function Equals(...) As Boolean` | Contract hooks for equality comparisons specific to policy periods, in addition to the inherited `iPeriodRatingInfo` equality. |

## Inherited public members

Members in this section are inherited from `iPeriodRatingInfo` and `IDateRange`, both declared in this library/framework. They are available on this type through interface inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| `AnniversaryRatingDate` | `ReadOnly Property AnniversaryRatingDate As Date` | Anniversary rating date used in rating-period equality (BR-POL-018). | `SAIF.Business.Policy` — `iPeriodRatingInfo` |
| `RatingEffectiveDate` | `ReadOnly Property RatingEffectiveDate As Date` | Rating effective date used in rating-period equality (BR-POL-018). | `SAIF.Business.Policy` — `iPeriodRatingInfo` |
| `IsARDExtended` | `ReadOnly Property IsARDExtended As Boolean` | Indicates whether the anniversary rating date has been extended (BR-POL-018). | `SAIF.Business.Policy` — `iPeriodRatingInfo` |
| `IsREDExtended` | `ReadOnly Property IsREDExtended As Boolean` | Indicates whether the rating effective date has been extended (BR-POL-018). | `SAIF.Business.Policy` — `iPeriodRatingInfo` |
| `EffectiveDate` | `ReadOnly Property EffectiveDate As Date` | Period effective date used in rating-period equality (BR-POL-018). | `SAIF.Business.Policy` — `iPeriodRatingInfo` |
| `ExpirationDate` | `ReadOnly Property ExpirationDate As Date` | Period expiration date used in rating-period equality (BR-POL-018). | `SAIF.Business.Policy` — `iPeriodRatingInfo` |
| `RateTierCode` | `ReadOnly Property RateTierCode As String` | Rate tier code used in rating-period equality (BR-POL-018). | `SAIF.Business.Policy` — `iPeriodRatingInfo` |
| `MarketType` | `ReadOnly Property MarketType As Enums.MarketTypes` | Market type used by `IsVoluntary`/`IsAssignedRisk` and rating-period equality (BR-POL-015, BR-POL-018). | `SAIF.Business.Policy` — `iPeriodRatingInfo` |

## Behavioral notes
- No local implementer of `iPolicyPeriodBase` exists in this repository; implementations live in consuming applications outside this codebase.**

## Constraints and usage notes
- `IDateRange`/`DateRange` are framework-inherited types whose namespace was inferred from context, not directly confirmed.*

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- SAIF.Business.Policy/iPolicyPeriodBase.vb
